package com.bb.flow.config;

import java.util.HashMap;
import java.util.Map;

/**
 * @author bigbeard
 * 类信息
 */
public class ClassInfo {
    /**
     * 类属性初始化信息
     */
    private final Map<String, String> properties = new HashMap<>();
    /**
     * 类名称
     */
    private String className;

    /**
     * 获取类名称
     *
     * @return 类名
     */
    public String getClassName() {
        return className;
    }

    /**
     * 设置类名称
     *
     * @param className 类名
     * @return 当前对象
     */
    public ClassInfo setClassName(String className) {
        this.className = className;
        return this;
    }

    /**
     * 获取需要初始化的类属性
     *
     * @return 属性集合
     */
    public Map<String, String> getProperties() {
        return properties;
    }

    /**
     * 添加类属性
     *
     * @param key   类对应的属性名称,如果和已有的重名则覆盖
     * @param value 属性值
     * @return 当前对象
     */
    public ClassInfo addProperty(String key, String value) {
        removeProperty(key);
        properties.put(key, value);
        return this;
    }

    /**
     * 移除指定属性
     *
     * @param key 属性名称
     * @return 当前对象
     */
    public ClassInfo removeProperty(String key) {
        properties.remove(key);
        return this;
    }
}
